from flask import Blueprint, jsonify, request
from io import BytesIO
from xlrd import open_workbook
from urllib.parse import quote
import xlsxwriter
import datetime
import mimetypes
import os
from utils.myfile import myf
from utils.type_tissue import xtree
from db import db
from utils.get_data import get_data

bp_company = Blueprint('company', __name__)


# 上传excel 并导入
@bp_company.route('/upload', methods=['POST'])
def upload():
    # 获取文件
    file = request.files['file']
    newname = myf.rename(file.filename)
    # 上传文件
    file.save(os.path.join('./static/files/' + newname))
    # # 打开文件读取
    # newname = 'a242ead56eac4bc69aa7b88689a3b105.xls'
    # name = './static/files/' + newname
    # # 封装数据写入数据库
    # bk = open_workbook(name, encoding_override='utf-8')
    # sh = bk.sheets()[0]
    # nrows = sh.nrows
    # print(nrows)
    # ncols = sh.ncols
    # print(ncols)
    # for i in range(2, nrows):
    #     row_date = sh.row_values(i)
    #     for j in range(0, ncols):
    #         print(row_date[j])
    return 'ok'


# #  导出excel文件
# @bp_company.route('/download', methods=["POST", "GET"])
# def download():
#     # 实例化二进制数据
#     out = BytesIO()
#     # 创建一个Excel实例
#     workbook = xlsxwriter.Workbook(out)
#     # 添加一个sheet，add_worksheet()，默认"Sheet1"，可自定义命名，add_worksheet("资产列表")
#     table = workbook.add_worksheet()
#     # table.write(行, 列, 字段名)
#     # 行、列从 0 开始计数
#     # 字段命名根据每个人使用情况而定，插入数据部分也是
#     table.write(0, 0, "资产编号")
#     table.write(0, 1, "资产名称")
#
#     workbook.close()
#     filename = quote("资产列表_{}.xlsx".format(datetime.datetime.now().strftime("%Y%m%d%H%M%S")))
#     file = make_response(out.getvalue())
#     out.close()
#     mime_type = mimetypes.guess_type('%s.xlsx' % filename)[0]
#     file.headers['Content-Type'] = mime_type
#     file.headers["Cache-Control"] = "no-cache"
#     file.headers['Content-Disposition'] = "attachment; filename*=utf-8''{}".format(filename)
#     return file


# 获取组织表数据 tissue
@bp_company.route('/tissue_list', methods=['POST', "GET"])
def tissue_list():
    data = get_data()
    if request.method == "POST":
        sql = "insert into tissue(name,type,pid) values('%s',%d,%d)" % (
            data['name'], int(data['radio']), int(data['pid']))
        db.update(sql)
        print(sql)
        return jsonify({'code': 200, 'meg': '添加成功'})
    sql1 = "select * from tissue"
    res = db.find_all(sql1)
    data = xtree(res)
    return jsonify({'code': 200, 'list': data})
